package page.ineffable.photostorage.util;

import java.io.File;

/**
 * 文件工具类
 *
 * @author lqs2
 * @date 2018/10/29, Mon
 */
public class FileUtils {

    /**
     * 计算文件的存放路径
     *
     * @param filename 文件名
     * @return 相对图片根目录的相对路径
     **/
    public static String calImagePath(String filename, String storeDirectory) {
        int hashCode = filename.hashCode();
        int dir1 = hashCode & 0xf;
        int dir2 = (hashCode & 0xf0) >> 4;
        String dir = "/" + dir1 + "/" + dir2 + "/";
        File file = new File(storeDirectory, dir);
        if (!file.exists()) {
            file.mkdirs();
        }
        return dir + filename;
    }


    /**
     * 根据图像的原存储路径生成其带水印的路径
     * 格式如下:
     * 例如: /1/0/640.jpeg ---> /1/0/640_mark.jpeg
     *
     * @param storagePath 图像原存储路径
     * @return 带水印的相对路径
     **/
    public static String calWaterMarkImagePath(String storagePath) {
        String name = storagePath.substring(storagePath.lastIndexOf("/") + 1);
        String suffix = name.substring(name.lastIndexOf(".") + 1);
        String pureName = name.substring(0, name.lastIndexOf("."));
        String purePath = storagePath.substring(0, storagePath.lastIndexOf("/") + 1);
        return purePath + pureName + "_mark." + suffix;
    }
}
